#pragma once

class DIRenderer;
class DBackground;
class DIActor;
class DGame;

typedef std::list<boost::shared_ptr<DIActor> > ActorList;

class DLayer
{
	friend class DWorld;
public:
	DLayer(boost::shared_ptr<DGame> game, bool bMainLayer = false);
	virtual ~DLayer(void);

    void setBackground(boost::shared_ptr<DBackground> back);

	void update(float dt);
	void render(boost::shared_ptr<DIRenderer> renderer);
private:
    boost::shared_ptr<DBackground> m_background;
	boost::weak_ptr<DGame> m_game;
    ActorList m_actors;
	bool m_bMainLayer;
};
